import type { Select } from './index'

export interface SelectOption {
  label: string
  value: string
  disabled?: boolean
}

export interface SelectProps {
  /**
   * 下拉框id
   */
  id: string
  /**
   * 下拉框标签
   */
  label?: string
  /**
   * 下拉框标签文本位置
   */
  labelTextPosition?: 'left' | 'right' | 'center'
  /**
   * 下拉框选项
   */
  options: SelectOption[]
  /**
   * 下拉框选中值
   */
  selectedValue?: string
  /**
   * 下拉框是否可清空
   */
  clearable?: boolean
  /**
   * 下拉框是否显示默认提示
   */
  showPlaceholder?: boolean
  /**
   * 下拉框默认提示文本
   */
  placeholder?: string
  /**
   * 下拉框标签提示语
   */
  title?: string
  /**
   * 下拉框初始化回调
   */
  onInit?: (instance: Select) => void
  /**
   * 下拉框值改变回调
   */
  onChange?: (value: string | undefined) => void
}

export const DEFAULT_SELECT_PROPS: Partial<SelectProps> = {
  labelTextPosition: 'center',
  label: '请选择',
  showPlaceholder: false,
  placeholder: '请选择',
  clearable: false,
}
